import os
import shutil  # 导入移动模块

class LF_FILE:


    # 获取文件名
    # @file_path : string | 文件或文件夹路径
    # retuen : Boolen | 执行结果 

    @classmethod
    def mkdir(cls,fille_path):
        path = cls.getFilePath(fille_path)
        if not os.path.exists(path):
            # 如果路径不存在，则递归创建父级目录
            os.makedirs(os.path.dirname(path), exist_ok=True)
            os.mkdir(path)  # 创建目标文件夹
        return True

    # 获取文件名
    # @file_path : string | 文件或文件夹路径
    # retuen : string | 文件名 
    @classmethod
    def getFilename(cls,fille_path):
        file_path = os.path.splitext(fille_path)[0]
        return file_path.split("/")[-1]


    # 获取文件路径
    # @file_path : string | 文件或文件夹路径
    # retuen : string | 文件路径 
    @classmethod
    def getFilePath(cls,fille_path):

        file_name, _ = os.path.splitext(fille_path)
        if _:
            return os.path.dirname(fille_path)
        else:
            return fille_path
        


    # ls
    # @file_path : string | 文件或文件夹路径
    # retuen : files,folders | 文件与文件夹列表 
    @classmethod
    def ls(cls,fille_path):
        path = cls.getFilePath(fille_path=fille_path)
        files = []
        folders = []
        
        for root, dirs, files_in_folder in os.walk(path):
            for file in files_in_folder:
                files.append(os.path.join(root, file))
            
            for dir in dirs:
                folders.append(os.path.join(root, dir))
                
        return files, folders

    @classmethod
    def cp(cls,input_folder,ouput_folder):
        shutil.copytree(input_folder,ouput_folder)